package com.haonan.Utils;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

/**
 * BCrypt密码加密工具类
 */
public class BCryptUtil {
    // 初始化编码器，指定工作因子（10-12为推荐值，值越高加密越慢但越安全）
    private static final BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(10);

    /**
     * 加密明文密码
     * @param rawPassword 用户输入的明文密码（如"123456"）
     * @return 加密后的哈希字符串（含自动生成的盐值）
     */
    public static String encryptPassword(String rawPassword) {
        // 注意：BCrypt会自动生成随机盐值，无需手动处理
        return encoder.encode(rawPassword);
    }

    /**
     * 验证密码是否匹配
     * @param rawPassword 用户输入的明文密码（登录时输入）
     * @param encodedPassword 数据库中存储的加密后密码
     * @return true=匹配，false=不匹配
     */
    public static boolean verifyPassword(String rawPassword, String encodedPassword) {
        return encoder.matches(rawPassword, encodedPassword);
    }
}